package springboot.application.pojo;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 1. @Value("${}") 读取配置文件的参数值，通过DI实现
 * 2. @Component 注入IOC容器，才能从IOC容器读取值
 *
 * @Value
 * 1. 用于类的属性，读取配置参数
 * 2. key值必须写全
 * 3. 只能读取单个值
 *
 * @ConfigurationProperties(prefix="")
 * 1. 用于类，批量读取配置参数
 * 2. prefix 指定配置文件的通用前缀
 * 3. 类的属性名必须和配置文件参数最后一层key名相同，否则为null
 * 4. 可以给集合类型赋值
 */

@Data
@Component
@ConfigurationProperties(prefix = "author.info")
public class User {

    @Value("${author.info.name}")
    private String username;

    @Value("${author.info.age}")
    private String password;

    // 无法通过 @Value("${author.info.gfs}") 导入多value参数
    private List<String> gfs;
}
